Systems and methods for advanced programmatic advertising targeting

ABSTRACT

Methods and systems are described for providing advanced programmatic advertising targeting. In one embodiment, a system includes a storage medium to store instructions of one or more performance based algorithms and processing logic coupled to the storage medium. In response to receiving a function call from an advertising entity, the processing logic is configured to execute the instructions of the one or more performance based algorithms to analyze parameters of the function call including an advertising cost budget for an ad campaign and analyze advanced targeting data and parameters and rules for determining a customized ad campaign for the advertising entity. The advanced targeting data and parameters include device characteristics and user characteristics including at least one of conversion rate, ad engagement rate, installed software application (app) type on a user&#39;s device, and in-app purchase (IAP) activity of a user from any ad source.

RELATED APPLICATIONS

This application claims the benefit of U.S. Provisional Application No.62/095,732, filed on Dec. 22, 2014, the entire contents of which arehereby incorporated by reference.

This application is related to application Ser. No. 14/677,948, filedApr. 2, 2015, entitled: SYSTEMS AND METHODS FOR PROVIDING PROGRAMMATICCREATION AND MODIFICATION OF ADVERTISING CAMPAIGNS, which isincorporated by reference in its entirety herein.

FIELD OF THE INVENTION

Embodiments of the invention are generally related to systems andmethods for advanced programmatic advertising targeting.

BACKGROUND

Mobile advertising is a form of advertising via mobile (wireless) phonesor other mobile devices. Advertisements (ads) can be presented to theintended user in the form of banner ads, text boxes, and video ads.However, these ads may be difficult to distribute to a targeted user ina timely manner and the user may not be responsive and interested in theads. Advertisers can create an advertising campaign as a series ofadvertisement messages that share a single idea and theme. Theadvertising campaigns appear in different media across a specific timeframe. However, advertisers may lack the resources and expertise foreffectively creating an ad campaign and delivering the ad campaign tomobile devices.

SUMMARY

Methods and systems are described for providing advanced programmaticadvertising targeting. In one embodiment, a system includes a storagemedium to store instructions of one or more performance based algorithmsand processing logic coupled to the storage medium. In response toreceiving a function call from an advertising entity, the processinglogic is configured to execute the instructions of the one or moreperformance based algorithms to analyze parameters of the function callincluding an advertising cost budget for an ad campaign and analyzeadvanced targeting data and parameters and rules for determining acustomized ad campaign for the advertising entity. The advancedtargeting data and parameters include device characteristics and usercharacteristics including at least one of conversion rate, ad engagementrate, installed software application (app) type on a user's device, andin-app purchase (IAP) activity of a user from any ad source.

In one example, the device characteristics include device identificationand device age with respect to a time period in which the device isidentified by the system. The conversion rate is used to divide usersinto different groups based on the conversion rate for the users. An adcategory conversion rate indicates a probability for a conversionoccurring for a user for a particular app category. The app type maytarget users having competitor apps installed or users that have aparticular application installed. The rules include a return oninvestment (ROI) parameter for the ad campaign based on the advertisingcost budget. The ad campaign delivers video ads to users of mobiledevices.

Other embodiments are also described. Other features of embodiments ofthe present invention will be apparent from the accompanying drawingsand from the detailed description which follows.

BRIEF DESCRIPTION OF THE DRAWINGS

The embodiments of the invention are illustrated by way of example andnot by way of limitation in the figures of the accompanying drawings inwhich like references indicate similar elements. It should be noted thatreferences to “an” or “one” embodiment of the invention in thisdisclosure are not necessarily to the same embodiment, and they mean atleast one.

FIG. 1 shows an embodiment of a block diagram of a system 100 forproviding programmatic creation and modification of advertisingcampaigns in accordance with one embodiment.

FIG. 2 illustrates a flow diagram of operations for providingprogrammatic creation and modification of advertising campaigns via anetwork in accordance with one embodiment.

FIG. 3 illustrates flow diagrams of operations for a method of providingprogrammatic creation and modification of advertising campaigns via anetwork in accordance with one embodiment.

FIG. 4 illustrates a flow diagram of operations for a method ofproviding programmatic creation and modification of advertisingcampaigns via a network in accordance with one embodiment.

FIG. 5 illustrates an exemplary user interface for programmatic creationof advertising campaigns in accordance with one embodiment.

FIG. 6 illustrates an exemplary user interface for programmaticmodification of advertising campaigns in accordance with one embodiment.

FIG. 7 illustrates a flow diagram of operations for a method of creatingand modifying programmatic advertising campaigns with advanced targetingin accordance with one embodiment.

FIG. 8 illustrates a flow diagram of operations for a method ofprogrammatically determining a customized advertising campaign withadvanced targeting in accordance with one embodiment.

FIG. 9 illustrates a diagrammatic representation of a machine in theexemplary form of a device 900 within which a set of instructions, forcausing the machine to perform any one or more of the methodologiesdiscussed herein, may be executed in accordance with one embodiment.

FIG. 10 is a block diagram of a wireless device 1000 in accordance withone embodiment.

DETAILED DESCRIPTION

Methods and systems are described for providing advanced programmaticadvertising targeting. In one embodiment, a system includes a storagemedium to store instructions of one or more performance based algorithmsand processing logic coupled to the storage medium. In response toreceiving a function call from an advertising entity, the processinglogic is configured to execute the instructions of the one or moreperformance based algorithms to analyze parameters of the function callincluding an advertising cost budget for an ad campaign and analyzeadvanced targeting data and parameters and rules for determining acustomized ad campaign for the advertising entity. The advancedtargeting data and parameters include device characteristics and usercharacteristics including at least one of conversion rate, ad engagementrate, installed software application (app) type on a user's device, andin-app purchase (IAP) activity of a user from any ad source.

An auction system provides a mechanism for third party participants tobid on providing advertising services including in-application (in-app)advertising services (e.g., advertising services delivered within mobileapplications, advertising services delivered within non-web browserapplications) to the device in response to an actual or predictive adexchange request. The auction system captures demand for providingadvertising services in real time or near real time prior to the actualor the predicted ad play event on the device.

In mobile video advertising, high performing campaigns are needed foradvertisers, publishers, and users of the publishers. Advertisersinclude organizations that pay for advertising services including ads ona publisher network of applications and games. Publishers providecontent for users. Publishers can include developers of softwareapplications, mobile applications, news content, gaming applications,sports news, etc. The publishers are interested in generating revenuethrough selling ad space to be on displayed in video ads to their users.

Performance can be defined in terms of click-through rates (CTR),conversion rates, and video completion rates. The process in which auser selects an ad is referred to as a click-through, which is intendedto encompass any user selection. The ratio of a number of click-throughsto a number of times an ad is displayed is referred to as the CTR of thead. A conversion occurs when a user performs a transaction related to apreviously viewed ad. For example, a conversion may occur when a userviews a video ad and installs an application being promoted in the videoad. A conversion may occur when a user views a video ad and installs anapplication being promoted in the video ad within a certain time period.A conversion may occur when a user is shown an ad and decides to make apurchase on the advertiser's web site within a certain time period. Theratio of the number of conversions to the number of times an ad isdisplayed is referred to as the conversion rate. A video completion rateis a ratio of a number of video ads that are displayed to completion toa number of video ads initiated on a device. Advertisers may also payfor their ads through an advertising system in which the advertiser bidon ad placement on a cost-per-click (CPC), cost-per-mille (CPM),cost-per-completed-view (CPCV), cost-per-action (CPA), and/orcost-per-install (CPI) basis. A mille represents a thousand impressions.

In this section several embodiments of this invention are explained withreference to the appended drawings. Whenever the shapes, relativepositions and other aspects of the parts described in the embodimentsare not clearly defined, the scope of the invention is not limited onlyto the parts shown, which are meant merely for the purpose ofillustration.

FIG. 1 shows an embodiment of a block diagram of a system 100 forproviding programmatic creation and modification of advertisingcampaigns in accordance with one embodiment. The ad system 100 includesan advertising engine 130, processing logic 132, device profiles 134,storage medium 136, an auction system 190, an ad store 150, and aprogrammatic ad campaign framework 160 for providing programmaticcreating and modification of ad campaigns (e.g., ad campaigns fordelivering video ads to mobile devices, ad campaigns for deliveringvideo ads to any type of device). The auction system 190 may beintegrated with the ad system or separate from the ad system. Theauction system 190 may include different types of auctions includingcost-per-install (CPI), cost-per-click (CPC), cost-per-mille (CPM),cost-per-action (CPA), second price auction, and an ad exchange auction.The system 100 provides advertising services for advertisers 184 orpublishers 182 to devices 102, 104, and 106 (e.g., source device, clientdevice, mobile phone, tablet device, lap top, computer, connected orhybrid television (TV), IPTV, Internet TV, Web TV, smart TV, satellitedevice, satellite TV, automobile, airplane, etc.) via a network 180. Adevice profile for a device is based on one or more parameters includinglocation (e.g., GPS coordinates, IP address, cellular triangulation,etc.) of the device, a social profile for a user of the device, andcategories or types of applications installed on the device.

A targeting platform 162 includes different parameters for targetingusers including individual users in ad campaigns and may include one ormore performance based algorithms that utilized these differentparameters for creating a performance based ad campaign. Alternatively,the performance based algorithms may be included in the ad engine 130and obtain data from the targeting platform for creating a performancebased ad campaign. The parameters include device characteristics (e.g.,device id, device age, OS type, network connection for user's device,whether user's device is mobile device or tablet device, volume, screensize and orientation, language setting, etc.) and user characteristics(e.g., user spend, conversion rate, engagement rate, app type, in-apppurchase (IAP) activity, etc.) from any source including the system 100,attributers 186, advertisers 184, and publishers 182. The conversionrate (or predicted conversion rate) may be used to divide users intodifferent groups based on the conversion rate. A category conversionrate can indicate how likely a conversion occurs for a user with aparticular app category (e.g., sports games, war games, quest games,news content apps, restaurant apps, fashion apps, travel apps, businessapps, etc.). An engagement rate is used to target users having a high orstrong ad engagement during ad play events. An app type may target usershaving competitor apps installed or users that have a particular “X” appinstalled. The competitor apps are competitors of publishers ordevelopers that want to advertise to users of the competitor apps. TheIAP activity targets users with IAP activity as indicated by user datafrom the system's 100 data pipeline.

Users with IAP activity can be separated into groups based on spendranges (e.g., $10-50 range, $50-100 range, $100 or more range, etc.).The device age can be used to target new devices with respect to thesystem 100. Additional parameters include segments of users such asnon-payers versus payers, social influence based on social media data,organic app installs, and life time value (LTV) of a user. The targetingplatform is used to support advertisers with complex bid strategies fortheir user acquisition campaigns.

Each device includes a respective advertising services software 103,105, 107 (e.g., a software development kit (SDK)) that includes a set ofsoftware development tools for advertising services including in-appadvertising services. (e.g., advertising services delivered withinmobile applications, advertising services delivered within non-webbrowser applications). In-app ad campaigns are ad campaigns (e.g., videoads) served to devices in-app (e.g., within mobile applications on amobile device, within non-web browser software applications on a device,etc). The publishers 182 (or developers) publish content along withselling ad space to advertisers. Attributers 186 may install software(e.g., software development kits of publishers) on client devices andtrack user interactions with publisher and developer applications andadvertisements. The attributers can then share this user data and devicedata with the system 100 and the appropriate publishers and advertisers.The system 100 uses this user and device data for analytics, datascience, and return on investment advertising modeling. The system 100,devices 102, 104, 106, advertisers 184, publishers 182, attributers 186,and an ad exchange 195 with third party exchange participantscommunicate via a network 180 (e.g., Internet, wide area network, WiMax,satellite, cellular, IP network, etc.). The third party exchangeparticipants can bid in real time or approximately in real time (e.g., 1hour prior to an ad being played on a device, 15 minutes prior to an adbeing played on a device, 1 minute prior to an ad being played on adevice, 15 seconds prior to an ad being played on a device, less than 15seconds prior to an ad being played on a device, less than 1 secondprior to an ad being played on a device) using the auction system 190 toprovide advertising services (e.g., an in-app video ad that includes apreview (e.g., video trailer) of an application, in-app ad campaigns forbrand and performance advertisers) for the devices. The processing logic132 may include a filtering functionality for filtering potentialavailable ad campaigns, an optimizer functionality for determining anoptimal ad campaign, and a selector (picker) functionality for selectingan optimal campaign. The filtering functionality may filter ad campaignsbased on availability, device characteristics (e.g., device profiles134), and user characteristics (e.g., age, gender, ethnicity, location,etc.), etc.

Advertisers 184 or publishers 182 (or developers) can programmaticallyaccess the programmatic ad campaign framework 160 for creating andmodifying ad campaigns (e.g., ad campaigns for delivering video ads tomobile devices, ad campaigns for delivering video ads to any type ofdevice) via a network 180. The ad campaign(s) are then delivered fromany ad source to the targeted user devices (e.g., 102, 104, 106) via thenetwork 180. The programmatic ad campaign framework 160 includesapplication programming interfaces (APIs) and implementing components.An API is a set of routines, protocols, and tools for building softwareapplications. The API specifies how software components should interact.The Advertisers 184 or publishers 182 (or developers) obtainprogrammatic ad campaign software from the system 100 and then use thissoftware for accessing the programmatic ad campaign framework 160. Theprogrammatic ad campaign software sends functions calls with parametersto one or more APIs of the programmatic ad campaign framework 160. TheseAPIs communicate with implementing software components of the framework160. The implementing software components (e.g., software libraries)provide a set of functionalities for creating and modifying adcampaigns. The APIs then send function calls or responses to theprogrammatic ad campaign software of the advertisers or publishers vianetwork 180. In this manner, the advertisers or publishers canprogrammatically create and modify ad campaigns using the ad system 100which has improved computer functionality in the form of theprogrammatic ad campaign framework based on directly receiving inputfrom the advertisers or publishers for creating a custom ad campaign fortargeting users having predicted life time values greater than athreshold life time value (LTV).

In contrast, conventional ad campaigns are created with an advertiser orpublisher talking with numerous ad sales, ad development, and adcreative staff for the ad system. The sales, ad development, and adcreative staff must then use different internal tools of the ad systemto create the ad campaign for the advertiser or publisher. Theadvertiser or publisher then needs to review the created ad campaign andprovide feedback for revisions of the ad campaign. The ad system worksin a more efficient and streamlined manner based on the advertisers andpublishers being able to directly access the ad tools of the ad systemand create or modify their own custom ad campaigns in a time sensitivemanner with minimal delay.

The targeting platform 162 also provides advanced targeting as describedherein for improved targeting computer functionality. The targetingplatform 162 allows an advertising entity (e.g., advertiser, ad agency,publisher, developer, etc.) to utilize one or more performance basedalgorithms to more quickly locate and target specific users evenindividual users based on objectives of the ad campaign such as usershaving predicted life time values greater than a threshold life timevalue (LTV). High conversion users and high lifetime value users areexamples of users having predicted life time values greater than athreshold LTV. High conversion users may convert more than a thresholdconversion percentage (e.g., more than 10%, more than 30%, more than50%, etc.) for an ad campaign. High lifetime value users are predictedto have a LTV greater than a threshold LTV (e.g., greater than $50,greater than $100, etc.) for an ad campaign. In another example, anobjective of the ad campaign includes a return on investment (ROI) forthe ad campaign.

The targeting platform 162 can focus on more important parameters (e.g.,high conversion users, high lifetime value users) and devalue or ignoreother parameters to perform the processing operations in a shorter timeperiod. Ad campaigns for delivering video ads to client devices via anetwork 180 can be adapted based on the engagement of the user. Forexample, a user that does not interact with an ad can be sent ads morefrequently while a user that does interact with an ad can be sent adsless frequently.

In one embodiment, the system 100 includes a storage medium 136 to storeone or more software programs. Processing logic (e.g., 132) isconfigured to execute instructions of at least one software programincluding executing the instructions of the one or more APIs andsoftware components to receive a function call from an ad campaignsoftware of an advertising entity, to provide a set of functionality forprogrammatically creating an ad campaign and programmatically modifyingan ad campaign, and generating a response that is sent to the adcampaign software of the advertising entity. The response includes oneor more function calls with parameters including cost information fortargeting users having predicted life time values greater than athreshold life time value (LTV) for a type of ad campaign.

FIG. 2 illustrates a flow diagram of operations for providingprogrammatic creation and modification of advertising campaigns via anetwork in accordance with one embodiment. The advertising operationalflow of an ad system may be executed by an apparatus or system, whichincludes processing circuitry or processing logic. The processing logicmay include hardware (circuitry, dedicated logic, etc.), software (suchas is run on a general purpose computer system or a dedicated machine ora device), or a combination of both. In one embodiment, a systemperforms the operations of method 200. In one example, the verticaldashed lines 264 and 265 represent a separation of the components of thesystem 201 (e.g., ad server 203, auction system 290, ad store 210) andcomponents external to the system 201 (e.g., device 230, attributers280, exchange 299, third party databases 297). The components of thesystem 201 communicate with the components external to the system via anetwork (e.g., network 180).

An advertising entity (e.g., advertiser, ad agency, publisher,developer, etc.) 220 uses ad campaign software 222 for creating andmodifying advertising campaigns (e.g., ad campaigns for delivering videoads to mobile devices via a network, ad campaigns for delivering videoads to any type of device (e.g., source device, client device, mobilephone, tablet device, lap top, computer, connected or hybrid television(TV), IPTV, Internet TV, Web TV, smart TV, etc) via a network). The adcampaign software 222 sends a function call 230 (e.g., create campaignfunction call) to the system 201 at operation 230. The function callincludes different parameters including an identification foridentifying the advertising entity and an identification for identifyingan ad campaign to be created. One or more APIs 208 of the programmaticad campaign framework 207 receives the function call from the adcampaign software 222. Parameters of the function call and data controlinformation are transferred to software components 209, which respond byproviding a set of functionality for creating an ad campaign. A responseis sent from the one or more APIs to the ad campaign software 222 atoperation 227. The response includes one or more function calls withreturn values and parameters in response to the function call receivedfrom the ad campaign software. The parameters of the response mayinclude an identification of the ad campaign (e.g., ad campaign 1), andfeatures or functions of the ad campaign. The ad campaign software 222will display a user interface or dashboard for customizing the adcampaign. The created ad campaign can be saved in the database 224 andalso in the ad campaign store 216. The ad campaign may utilize ads fromany source including database 224, an ad store 210, third partydatabases 297, etc. The ad campaign framework 207 includes inversion ofcontrol such that an overall program flow is dictated by the frameworknot the caller (e.g., advertising entity). The framework also includesdefault behavior and can be extended by a user to provide specificfunctionality. The framework includes non-modifiable framework code thatis not to be modified but does allow user-implemented extensions.

The ad campaign software 222 can also update an ad campaign at operation228 by sending a function call (e.g., update campaign function call) tothe system 201 via a network. One or more APIs 208 of the programmaticad campaign framework 206 receives the function call from the adcampaign software 222. Parameters of the function call and data controlinformation are transferred to the software components 209, whichrespond by providing a set of functionality for updating the adcampaign. A response is sent from the one or more APIs to the adcampaign software 222 at operation 229. The response includes one ormore function calls with return values and parameters in response to thefunction call received from the ad campaign software. The parameters ofthe response may include an identification of the ad campaign (e.g., adcampaign 1.1), and features or functions of the ad campaign.

A targeting platform 205 may be integrated with the ad campaignframework 206 or separate from the ad campaign framework 206. Thetargeting platform includes different parameters for targeting users inad campaigns and may include one or more performance based algorithmsthat utilize these different parameters for creating an ad campaign.Alternatively, the performance based algorithms may be located in the adengine 255. For example, the ad campaign framework 206 may access data,parameters, or algorithms from the targeting platform or ad engine forcreating and modifying ad campaigns. The parameters include devicecharacteristics (e.g., device id, device age) and user characteristics(e.g., user spend, conversion rate, engagement rate, app type, IAPactivity, predicted user LTV, etc.) from any source including the system100, attributers 186, advertisers 184, and publishers 182. Additionalparameters include segments of users such as non-payers versus payers,social influence based on social media data, organic app installs, andlife time value (LTV) of a user.

A device 230 (e.g., source device, client device, mobile phone, tabletdevice, lap top, computer, connected or hybrid television (TV), IPTV,Internet TV, Web TV, smart TV, etc) initiates a software application(e.g., at least one of software applications 231-234). For example, auser may select one of the software applications. The advertisingservices software 240 is also initiated upon the initiation of one ofthe software applications. The advertising services software 240 may beassociated with or embedded with the software applications. Theadvertising services software 240 may include or be associated withlogic 242 (e.g., communication logic for communications such as an adrequest), an ad cache store 244 for storing one or more ads or adcampaigns, ad streaming functionality 246 for receiving, optionallystoring, and playing streamed ads, and device functionality 248 fordetermining device and connection capabilities (e.g., type of connection(e.g., 4G LTE, 3G, WiFi, WiMax, etc.), bandwidth of connection, locationof device, type of device, display characteristics (e.g., pixel density,color depth), etc.). The initiated software application or advertisingservices software may have an ad play event for displaying or playing anad on the display of the device. At operation 250, processing logic 202of an ad server 204 of system 201 receives a configuration call from thedevice 230 via a network upon the initiation of the software applicationand associated advertising services software 240. At operation 252, theprocessing logic 202 sends a response that includes at least oneconfiguration file to the device 230 in response to the configurationcall. The at least one configuration file includes different options forobtaining an ad to play for the ad play event. In one embodiment, afirst option includes playing at least one ad that is cached on thedevice 230 during the ad play event. A second option includes planningto play at least one ad that is cached on the device 230 but asking forat least one better ad from the system 201. If the system 201 obtainsand delivers at least one better ad in a timely manner (e.g., in timefor a predicted ad play event, within a time period set by the at leastone configuration file) then the at least one better ad will play duringthe predicted ad play event. The at least one better ad is expected tohave a higher conversion rate or higher likelihood of obtaining a userinteraction than the at least one cached ad. Otherwise, the cached ad isplayed. A third option includes planning to play at least one ad that iscached on the device 230 but asking for at least one better ad from theexchange 299. If the exchange 299 including third party databases 296provides at least one better ad in a timely manner then the better adwill play during the ad play event. Otherwise, the cached ad is played.A fourth option includes planning to play at least one ad that is cachedon the device 230 but asking for at least one better ad from the system201 or the exchange 299. If the system 201 or the exchange 299 provideat least one better ad in a timely manner then the better ad will playduring the ad play event. Otherwise, the cached ad is played.

A fifth option includes streaming at least one ad to be played duringthe predicted ad play event to the device 230. A sixth option includesplanning to play at least one ad that is streamed to the device 230 butasking for at least one better ad from the system 201. If the system 201provides the at least one better ad in a timely manner (e.g., in timefor the ad play event, within a time period set by the configurationfile) then the better ad will play during the ad play event. Otherwise,the planned streamed ad is played. A seventh option includes planning toplay at least one ad that is streamed to the device 230 but asking forat least one better ad from the exchange 299. If the exchange 299provides a better ad in a timely manner then the better ad will playduring the ad play event. Otherwise, the planned streamed ad is played.An eighth option includes planning to play at least one ad that isstreamed to the device 230 but asking for at least one better ad fromthe system 201 or the exchange 299. If the system 201 or the exchange299 provide a better ad in a timely manner then the better ad will playduring the predicted ad play event. Otherwise, the planned streamed adis played. In others embodiments, the configuration file includes asubset of the options 1-8, additional options for obtaining at least onead or ad campaign, or different options (e.g., options that includepotential caching and streaming operations).

The configuration file can be altered by the system 201 or the device230 without affected the advertising services software 240. Inparticular, the configuration file can be altered without affecting aversion of the advertising services software 240 such that a user doesnot need to update a version of the advertising services software evenif the configuration file changes. The system 201 is designed to deliverthe most relevant and highest converting ads to devices via a networkusing the configuration file.

At operation 254, prior to a predicted ad play event or an actual adplay event, the processing logic of the ad server optionally receives anad request with a configurable option (e.g., options 1-8) of the atleast one configuration file based on an anticipated ad play eventoccurring in the near future (e.g., 1 hr, 15 minutes, 60 seconds, 10seconds, etc.). The ad request may be a predictive ad request if itoccurs prior to a predicted ad play event. Alternatively, the ad servergenerates an ad request based on receiving the configuration call, whichindicates that the user has initiated a software application and ananticipated ad play event will likely occurring in the near future eventhough no ad request is received from the device.

The ad request includes different types of information includingpublisher settings (e.g., a publisher of the selected softwareapplication), an application id to identify the selected softwareapplication, placement information for timing placement of an ad in-app(e.g., within mobile applications on a mobile device, within non-webbrowser software applications on a device, etc), user characteristics,device characteristics (e.g., device id), geographical data, locationdata, motion data (e.g., motion data from an accelerometer orgyroscope), language, time, application settings, demographic data forthe user of the device, session data (e.g., how long a user has beenusing the selected application), and cache information. The ad serverprocesses the ad request to determine an ad format and timing placement(e.g., an optimal ad format in terms of likelihood of converting, anoptimal timing placement in terms of likelihood of converting) of atleast one ad or interstitial ad played in-app within an initiatedsoftware application (e.g., any type of software application, non-webbrowser software applications) based on the information contained in thepredictive ad request. The ad server determines an ad format and timingplacement that is most likely to convert or generate revenue for apublisher or a developer.

Attributers 280 may have software (e.g., a SDK of the publisher of theapplication) installed on the user's device in order to obtain thirdparty user data (e.g., user data 281 from the device 230). This userdata may include tracking of a user's interaction and engagement withthe software application, a length of time that the application isinstalled, an amount of purchases from the application, and buyingpatterns in terms of which products or services are purchased and whenthese products or services are purchased. The user data may also includemonitoring target goals for how the user engages with the application.The user data (e.g., user data 282) can be shared with system 201,publishers, and advertisers via a network.

The ad server also processes the ad request (or predictive ad request)and accesses at least one of the ad store 210 and the exchange 299 foroptions 2-8 of the at least one configuration file to obtain at leastone ad or ad campaign that is likely or most likely to convert. The adserver may determine which option of options 1-8 will be processed orenabled for processing the ad request (or predictive ad request) basedon one or more configurable parameters. Alternatively, the device oruser may determine which option of options 1-8 will be processed orenabled based on these parameters.

For option 1, the device plays at least one ad from cache. For optionsthat access the ad store 210, at operation 260, the processing logic 202sends an ad call or request (or a predictive ad call or request) to thead store 210 of the system 201. The ad store includes an ad database 212having ad campaigns and ads. The ad database 212 may be a first party addatabase, i.e., a database of system 201. The ad store may optionallyprovide access to third party ad databases 297 via tag functionality214. The tag functionality 214 generates or stores an ad serving tag foraccessing one or more third party ad databases 297. The ad campaigns andads are capable of being streamed to ad streaming 246 of the device orsaved in an ad cache store 240 of the device.

At operation 262, the ad server receives an ad response from the adstore 210 in response to the ad call or request (or predictive ad callor request). The ad response includes a payload with one or morepotential ads or ads campaigns for being streamed to the device 230 viaa network or optionally an ad serving tag for accessing one or morethird party ad databases 297. If the ad server receives an ad servingtag, then the ad server sends an ad request (or predictive ad request)to the third party database at operation 295 and receives an ad response(or predictive ad response) at operation 296 from the third partydatabase 297. The ad response from the ad store or the third partydatabases 297 includes one or more ads or ad campaigns for being sent orstreamed to the device 230. The processing logic 202 decides whether tostream at least one ad or ad campaign to the device 230 via a networkbased on the determined or selected option of the at least oneconfigurable file.

The ad server upon processing an ad request (or a predictive ad request)may access the exchange 299 given certain options (e.g., options 3, 4,7, and 8) of the at least one configuration file. In this case, the adserver sends an exchange request (or a predictive exchange request 270)to the auction system 290 having an auction engine 291 and database 293prior to a predicted ad play event or actual ad play event on thedevice. Alternatively, the auction system is integrated with the adsystem 201. The auction engine 291 processes the ad exchange request 270and generates an auction based on different business rules including atleast one of a price (e.g., a floor or lowest price for the ad or adcampaign), inventory allocation, and participants who can participate inthe auction.

In one embodiment, the auction is a second price auction in which eachparticipants gives their highest price (e.g., $10 per app install) andthe highest bidder pays the price of the second highest bidder (e.g., $8per app install). The advantage of this monetization model is thatadvertisers only bid the maximum that they are willing to pay for a setof conditions. In the scenario where another bidder's maximum price issignificantly lower, the highest bidder only gets charged the secondhighest price of the auction. This encourages advertisers to bid actualor real market value for inventory while giving advertisers a chance tospend significantly less.

The auction determines which participant can provide a better ad for thedevice in a timely manner. At operation 274, the auction system 290sends an ad exchange request (or a predictive ad exchange request toeach participant of the auction). The ad exchange request (or predictivead exchange request) includes configurable parameters including at leastone of ad length, bit rate for playing the ad, ad categories, ageratings, a limit for a number of redirects to minimize latency, and thefloor price. The configurable parameters are designed to enhance a userexperience (e.g., by minimizing latency) and provide safety for the userbased on the age rating. One or more participants then respond with anad exchange response (or a predictive ad exchange response) at operation276. The auction engine processes the ad exchange responses (orpredictive ad exchange responses) (bids) and determines whichparticipant(s) if any will serve a better ad for playing on the devicefor an actual ad play event (or a predicted ad play event). Theresponses and ads from the participants can be saved in the database293. At operation 272, an ad response (or a predictive ad response) issent from the auction engine to the ad server. The ad server thenprocesses the ad from a winning or selected participant as determined bythe auction system. In this case, the ad server unpacks the payload ofthe ad and converts a format of the ad (if necessary) into a standardformat (e.g., xml standard, digital video ad serving template (VAST))for ads served by the ad server. The ad server can compare a better adfrom the winning or selected participant from the exchange or possiblyany of the bids from the exchange with a cached ad on the device and abetter ad obtained with an ad response from the ad store. At operation284, the ad server can then select at least one better ad from the adstore, a participant with a winning or selected bid from the exchange, acached ad on the device, or optionally a third party database 297 thathas not participated in the exchange. A better ad is anticipated to bemore likely to convert or have a higher likelihood of obtaining a userinteraction than the cached ad on the device. The at least one better adif selected is then cached on the device or streamed to the device via anetwork and played during the actual ad play event or a predicted adplay event that has been predicted to occur.

FIG. 3 illustrates a flow diagram of operations for a method ofproviding programmatic creation and modification of advertisingcampaigns via a network in accordance with one embodiment. Theadvertising operational flow of an ad system may be executed by anapparatus or system, which includes processing circuitry or processinglogic. The processing logic may include hardware (circuitry, dedicatedlogic, etc.), software (such as is run on a general purpose computersystem or a dedicated machine or a device), or a combination of both. Inone embodiment, a system performs the operations of method 300 byexecuting instructions (e.g., framework code) of a programmatic adcampaign framework. The system communicates with an advertising entityvia a network (e.g., network 180).

An advertising entity (e.g., advertiser, ad agency, publisher,developer, etc.) 220 uses ad campaign software 222 to access theprogrammatic ad campaign framework for creating and modifyingadvertising campaigns (e.g., ad campaigns for delivering video ads tomobile devices via a network, ad campaigns for delivering video ads toany type of device via a network) via a network. A system (e.g.,programmatic ad campaign framework 206 of the ad system 201) receives afunction call (e.g., create campaign function call 230) from theadvertising entity via a network at operation 302. The advertisingentity may be using ad campaign software 222. The function call includesdifferent parameters including an identification for identifying theadvertising entity and an identification for identifying an ad campaignto be created. One or more APIs of the programmatic ad campaignframework of the system receives the function call. Parameters of thefunction call and data control information are transferred to one ormore software components of the programmatic ad campaign framework atoperation 304. The software component(s) respond by providing a set offunctionality for creating an ad campaign at operation 306. The set offunctionality may include different parameters based on user or devicecharacteristics including an operating system (OS) type, costinformation for a bid or cost type (e.g., $10 for CPI), a threshold LTV(e.g., $50 threshold LTV, $100 threshold LTV) for targeting users havingpredicted life time values greater than the threshold LTV, a conversionrate for representing a likelihood of user ad interaction or conversion,a payer or non-payer category, an in-app (e.g., within mobileapplications, within non-web browser applications) purchase (IAP)parameter, an engagement rate, etc. Any of the parameters included inthe targeting platform may also be accessed and provided as the set offunctionality. A response is sent from the software component(s) via theone or more APIs to the ad campaign software of the advertising entityvia a network at operation 308.

The response includes one or more function calls with return values andparameters in response to the function call received from the adcampaign software. The parameters of the response may include anidentification of the ad campaign (e.g., ad campaign 1), and features orfunctions of the ad campaign. The ad campaign software will display auser interface or dashboard for customizing the ad campaign. The createdad campaign can be saved in a database (e.g., the database 224, adcampaign store 216) at operation 310. The ad campaign may utilize adsfrom any source including database 224, an ad store 210, third partydatabases 297, an ad exchange 195, etc.

The system can also optionally update an ad campaign at operation 311 byreceiving a function call (e.g., update campaign function call) from thead campaign software. One or more APIs of the programmatic ad campaignframework receives the function call from the ad campaign software 222.Parameters of the function call and data control information aretransferred to the one or more software components at operation 312. Theone or more software components respond by providing a set offunctionality for updating the ad campaign at operation 314. The set offunctionality to be updated may include any of the parameters discussedherein including an operating system (OS) type, cost information for abid or cost type (e.g., $10 for CPI), a conversion rate for representinga likelihood of user ad interaction or conversion, a payer or non-payercategory, an in-app purchase (IAP) parameter, an engagement rate, athreshold LTV (e.g., $50 threshold LTV, $100 threshold LTV) fortargeting users having predicted life time values greater than thethreshold LTV, a ROI function or parameter, etc. A response is sent fromthe one or more software components via the one or more APIs to the adcampaign software at operation 316. The response includes one or morefunction calls with return values and parameters in response to thefunction call received from the ad campaign software. The parameters ofthe response may include an identification of the ad campaign (e.g., adcampaign 1.1), and features or functions of the ad campaign.

FIG. 4 illustrates a flow diagram of operations for a method ofproviding programmatic creation and modification of advertisingcampaigns via a network in accordance with one embodiment. Theadvertising operational flow of an ad system may be executed by anapparatus or system, which includes processing circuitry or processinglogic. The processing logic may include hardware (circuitry, dedicatedlogic, etc.), software (such as is run on a general purpose computersystem or a dedicated machine or a device), or a combination of both. Inone embodiment, a device or system of an advertising entity executesinstructions of an ad campaign software to perform at least some of theoperations of method 400. The ad system communicates with an advertisingentity via a network (e.g., network 180).

In one embodiment, an advertising entity uses ad campaign software(e.g., ad campaign software 222) installed on a device or a system forcreating and modifying advertising campaigns (e.g., ad campaigns fordelivering video ads to mobile devices, ad campaigns for deliveringvideo ads to any type of device). The ad campaign software causes a userinterface or dashboard to display on the device or system at operation401. The user interface allows for customizing the ad campaign and forreceiving one or more selection input of one or more different types ofad campaigns or one more parameters of the ad campaigns. For example, auser of the ad campaign software of the advertising entity selects oneor more options for creating the ad campaign. The user can select anoption to create a new ad campaign or the user can select an existing adcampaign possibly from a list or arrangement of existing ad campaigns tobe used as a template for creating a customized ad campaign.

The device or system of the advertising entity sends a function call(e.g., create campaign function call 230) to an ad system (e.g., aprogrammatic ad campaign framework of system 101, a programmatic adcampaign framework of system 201) at operation 402 in response toreceiving one or more selection input. The advertising entity may beusing ad campaign software 222. The function call includes differentparameters including an identification for identifying the advertisingentity and an identification for identifying an ad campaign to becreated. One or more APIs of a programmatic ad campaign framework of thead system receives the function call. Parameters of the function calland data control information are transferred to one or more softwarecomponents of the programmatic ad campaign framework. The one or moresoftware components respond by providing a set of functionality forcreating an ad campaign. The set of functionality may include anoperating system (OS) type, cost information for a bid or cost type(e.g., $10 for CPI), a conversion rate for representing a likelihood ofuser ad interaction or conversion, a payer or non-payer category, anin-app purchase (IAP) parameter, an engagement rate, a threshold LTV(e.g., $50 threshold LTV, $100 threshold LTV) for targeting users havingpredicted life time values greater than the threshold LTV, a ROIfunction or parameter, etc. The device or system of the advertisingentity receives a response from the ad system at operation 404. Forexample, the response is received from the one or more softwarecomponents via the one or more APIs at operation 404.

The response includes one or more function calls with return values andparameters in response to the function call sent from the ad campaignsoftware. The parameters of the response may include an identificationof the ad campaign (e.g., ad campaign 1), and features or functions ofthe ad campaign. The created ad campaign can be saved in a database(e.g., the database 224, ad campaign store 216) at operation 406. The adcampaign may utilize ads from any source including database 224, an adstore 210, third party databases 297, etc.

The ad campaign software can also update an ad campaign in response toreceiving a selection of one or more parameters at operation 407. The adcampaign software causes a function call (e.g., update campaign functioncall) to be created at operation 408 in response to the selection of oneor more parameters. The device or system of the advertising entity sendsthe function call to the ad system at operation 410. One or more APIs ofthe programmatic ad campaign framework receives the function call fromthe ad campaign software 222. Parameters of the function call and datacontrol information are transferred to the one or more softwarecomponents. The one or more software components respond by providing aset of functionality for updating the ad campaign. The set offunctionality to be updated may include an operating system (OS) type,cost information for a bid or cost type (e.g., $10 for CPI), aconversion rate for representing a likelihood of user ad interaction orconversion, a payer or non-payer category, an in-app purchase (IAP)parameter, an engagement rate, a threshold LTV (e.g., $50 threshold LTV,$100 threshold LTV) for targeting users having predicted life timevalues greater than the threshold LTV, a ROI function or parameter, etc.The system or device of the advertising entity receives with the adcampaign software a response from the ad system at operation 412. Theone or more software components via the one or more APIs provide theresponse. The response includes one or more function calls with returnvalues and parameters in response to the function call received from thead campaign software. The parameters of the response may include anidentification of the ad campaign (e.g., ad campaign 1.1), and featuresor functions of the ad campaign to be updated. The device or system ofthe advertising entity updates the user interface based on the updatedparameters of the features or functions of the function call atoperation 414. The user of the device or system can update additionalparameters of the ad campaign by making one or more additionalselections from the updated user interface of the device or system atoperation 416.

FIG. 5 illustrates an exemplary user interface for programmatic creationof advertising campaigns in accordance with one embodiment. The userinterface 500 occurs after an advertiser (or ad agency or publisher ordeveloper) has initiated ad campaign software installed on a device or asystem. The user interface 500 includes an ad campaign region 510 forselecting one or more ad campaigns (e.g., ad campaigns for deliveringvideo ads to mobile devices, ad campaigns for delivering video ads toany type of device) including ad campaigns 512, 514, 516, 518, and n.Each ad campaign is associated with a selectable cost information optionincluding cost information option 522, cost information option 524, costinformation option 526, cost information option 528, and costinformation option n. For example, cost information option 522 may be a$5 cost information for CPI on a certain OS type, cost informationoption 524 may be a $7 cost information for CPI on a certain OS type,cost information option 526 may be a $10 cost information for CPI on acertain OS type, cost information option 528 may be a $15 costinformation for CPI on a certain OS type, and cost information option nmay be a $20 cost information for CPI on a certain OS type. In anotherembodiment, the OS type is a separate function with selectable options.

The function 530 includes selectable conversion rate options 532, 534,536, 538, and n. Each ad campaign is associated with one of the selectedconversion rate options. For example, ad campaign 514 may target usershaving a predicted conversion rate of 30% or more while ad campaign 516may target users having a predicted conversion rate of 40% or more.Function 540 includes an identification option 542 for identifying anadvertiser (or ad agency, publisher, developer), a payer v. non-payeroption 544, and IAP options 546, 548, and n. The payer or non-payeroption indicates a type of user that the associated ad campaign will betargeting. For example, the ad campaign 514 may only target paying usersbased on the selection of payer option 544. The ad campaign 516 may onlytarget users having IAP greater than $50 while the ad campaign 518 mayonly target users having IAP greater than $100. In one embodiment, thefunction 560 includes LTV options 562, 564, 566, 568, n for a thresholdLTV (e.g., $30 threshold LTV for option 562, $50 threshold LTV foroption 564, $100 threshold LTV for option 566, etc.) for targeting usershaving predicted life time values greater than the threshold LTV.

In one embodiment, the function n includes engagement rate options 552,554, 556, 558, n. The engagement rate indicates how engaged a user iswith an ad. For example, the ad campaign 512 may target users having afirst engagement rate. The ad campaign 514 may target users having asecond engagement rate. An advertising entity may be willing to pay agreater amount for users having a higher engagement rate. Function 570includes return on investment ROI options 572, 574, 576, 578, and n fordefining ROI objectives (e.g., 10-20% ROI) for each ad campaign. An adcampaign may include at least one of the LTV and ROI functions.

FIG. 6 illustrates an exemplary user interface for programmaticmodification of advertising campaigns in accordance with one embodiment.The user interface 600 occurs after an advertising entity has initiatedad campaign software installed on a device or a system and decides toupdate one or more ad campaigns (e.g., ad campaigns for delivering videoads to mobile devices via a network, ad campaigns for delivering videoads to any type of device via a network). The user interface 600includes an ad campaign region 610 for selecting one or more adcampaigns to be updated including ad campaigns 612, 614, 616, 618, andn. Each ad campaign is associated with a selectable cost informationoption including cost information option 622, cost information option624, cost information option 626, cost information option 628, and costinformation option n. For example, cost information option 622 may be a$5 cost for CPI on a certain OS type, cost information option 624 may bea $7 cost for CPI on a certain OS type, cost information option 626 maybe a $10 cost for CPI on a certain OS type, cost information option 628may be a $15 cost for CPI on a certain OS type, and cost informationoption n may be a $20 cost for CPI on a certain OS type. In anotherembodiment, the OS type is a separate function with selectable options.Any of these cost information options may be selected and modified toupdate the associated ad campaign.

In one embodiment, the function 630 includes selectable conversion rateoptions 632, 634, 636, 638, and n. Each ad campaign is associated withone of the selected conversion rate options. Function 640 includes anidentification option 642 for identifying an advertiser (or ad agency,publisher, developer), a payer v. non-payer option 644, and IAP options646, 648, and n. The payer or non-payer option indicates a type of userthat the associated ad campaign will be targeting. For example, the adcampaign 614 may only target paying users based on the selection ofpayer option 644. The ad campaign 616 may only target users having IAPgreater than $50 while the ad campaign 618 may only target users havingIAP greater than $100.

In one embodiment, the function 660 includes LTV options 662, 664, 666,668, n for a threshold LTV (e.g., $30 threshold LTV for option 662, $50threshold LTV for option 664, $100 threshold LTV for option 666, etc.)for targeting users having predicted life time values greater than thethreshold LTV. Function 670 includes return on investment ROI options672, 674, 676, 678, and n for defining ROI objectives (e.g., 10-20% ROI)for each ad campaign. An ad campaign may include at least one of the LTVand ROI functions.

In one embodiment, the conversion rate option 634 of ad campaign 614,which corresponds to ad campaign 514 of FIG. 5, is selected as indicatedby the shading in FIG. 6. The advertising entity can then change theconversion rate from its current value (e.g., 30% or more) to any otherpredetermined or custom settings or values (e.g., conversion rate of 35%or more). In another embodiment, the cost information option 626 and IAPoption 646 are selected as indicated by the shading in FIG. 6. Thesefunctions are updated for the ad campaign 616. The advertising entitycan change the cost information from its current value (e.g., $10 CPI)to any other predetermined or custom settings or values (e.g., $12 CPI,$1 CPC, etc.). The advertising entity can also change the IAP option 646from its current value (e.g., IAP greater than $50) to any otherpredetermined, custom setting, or value (e.g., IAP greater than $50,etc.).

In one embodiment, the function n includes engagement rate options 652,654, 656, 658, n. The engagement rate indicates how engaged a user iswith an ad in terms of cognitive (e.g., awareness, interest), physical(e.g., user-initiated transaction), and emotional factors. In oneexample, engagement with an ad video is measured in terms of play rate,playthrough rate, completion rates, video viewing time, and share rates.In another example, rich media engagement is measured in terms ofdisplay times, expansions, expansion times, interaction time and rate,form responses, game play, and share rates. In another example formobile devices, engagement includes click to call, retail location,interaction rates, click to download, click to play, and share rates.For example, the ad campaign 612 may target users having a firstengagement rate. The ad campaign 614 may target users having a secondengagement rate. An advertiser may change an engagement rate for one ormore engagement rate options.

In another example, closing a video ad at an earliest opportunity can beinterpreted as a negative emotion in regards to the video ad. A user'sinteraction with hardware (e.g., display device, motion device,gyroscope, accelerometer, smart watch, heart rate monitor, bloodpressure sensor, etc.) may also be used to infer an emotional state ofthe user. For example, a user can interact with an interactive end cardof an ad campaign by touching numerous touch points on a display deviceof a device to indicate an emotional state. A user can move the devicein a certain shape or pattern that can be detected by a motion device.

FIG. 7 illustrates a flow diagram of operations for a method of creatingand modifying programmatic advertising campaigns with advanced targetingin accordance with one embodiment. The advertising operational flow ofan ad system may be executed by an apparatus or system, which includesprocessing circuitry or processing logic. The processing logic mayinclude hardware (circuitry, dedicated logic, etc.), software (such asis run on a general purpose computer system or a dedicated machine or adevice), or a combination of both. In one embodiment, an ad systemperforms the operations of method 700 by executing instructions of atleast one of software components, APIs, and one or more performancebased algorithms with advanced targeting. The ad system communicateswith an advertising entity via a network (e.g., network 180).

An advertising entity (e.g., advertiser, ad agency, publisher,developer, etc.) 220 uses ad campaign software 222 to access theprogrammatic ad campaign framework for creating and modifyingadvertising campaigns (e.g., ad campaigns for delivering video ads tomobile devices, ad campaigns for delivering video ads to any type ofdevice). The ad campaign software provides a user interface for enteringone or more parameters. The advertising entity enters one or moreparameters including an advertising cost budget for an ad campaign. Anad system (e.g., programmatic ad campaign framework 207 of the ad system201) receives a function call (e.g., create campaign function call 230)from the advertising entity at operation 702. The advertising entity maybe using ad campaign software 222. The function call includes differentparameters including an identification for identifying the advertisingentity, an ad advertising cost budget for an ad campaign, and optionallyan identification for identifying an ad campaign to be created. One ormore APIs of the programmatic ad campaign framework of the systemreceives the function call. Parameters of the function call and datacontrol information are transferred to one or more software componentsof the programmatic ad campaign framework at operation 704. The softwarecomponent(s) include one or more performance based algorithms or incombination with one or more performance based algorithms respond byproviding a set of functionality for creating an ad campaign atoperation 706. The set of functionality may include any type of usercharacteristic or device characteristic for advanced targeting. In oneembodiment, the functionality includes device characteristics (e.g.,device id, device age, OS type, network connection for user's device,whether user's device is mobile device or tablet device, volume, screensize and orientation, language setting) and user characteristics (e.g.,user spend, conversion rate, engagement rate, app type, IAP activity,etc.) from any source including the system 100, attributers 186,advertisers 184, and publishers 182. A response is sent from thesoftware component(s) via the one or more APIs to the ad campaignsoftware of the advertising entity at operation 708.

The response includes one or more function calls with return values andparameters in response to the function call received from the adcampaign software. The parameters of the response may include anidentification of the ad campaign (e.g., ad campaign 1), and features orfunctions of the ad campaign. The ad campaign software will display auser interface or dashboard for customizing the ad campaign. The createdad campaign can be saved in a database (e.g., the database 224, adcampaign store 216) at operation 710. The ad campaign may utilize adsfrom any source including database 224, an ad store 210, third partydatabases 297, etc.

The system can also optionally update an ad campaign at operation 712 byreceiving a function call (e.g., update campaign function call) from thead campaign software of an advertising entity. One or more APIs of theprogrammatic ad campaign framework receives the function call from thead campaign software 222. Parameters of the function call and datacontrol information are transferred to the one or more softwarecomponents at operation 714. The one or more software components respondby providing a set of functionality for updating the ad campaign atoperation 716. The set of functionality to be updated may include any ofthe parameters discuss herein. A response is sent from the one or moresoftware components via the one or more APIs to the ad campaign softwareat operation 718. The response includes one or more function calls withreturn values and parameters in response to the function call receivedfrom the ad campaign software. The parameters of the response mayinclude an identification of the ad campaign (e.g., ad campaign 1.1),and features or functions of the ad campaign.

FIG. 8 illustrates a flow diagram of operations for a method ofprogrammatically determining a customized advertising campaign withadvanced targeting in accordance with one embodiment. The advertisingoperational flow of an ad system may be executed by an apparatus orsystem, which includes processing circuitry or processing logic. Theprocessing logic may include hardware (circuitry, dedicated logic,etc.), software (such as is run on a general purpose computer system ora dedicated machine or a device), or a combination of both. In oneembodiment, a system performs the operations of method 800 by executinginstructions of one or more performance based algorithms with advancedtargeting. The one or more performance based algorithms may be locatedin an ad system. The ad system communicates with an advertising entityvia a network (e.g., network 180).

An advertising entity (e.g., advertiser, ad agency, publisher,developer, etc.) 220 uses ad campaign software 222 to access an adsystem having the programmatic ad campaign framework for creating andmodifying advertising campaigns (e.g., ad campaigns for delivering videoads to mobile devices, ad campaigns for delivering video ads to any typeof device). The ad campaign software provides a user interface forentering one or more parameters. The advertising entity enters one ormore parameters including an advertising cost budget for an ad campaign.A system (e.g., programmatic ad campaign framework 207 of the ad system201, ad engine, targeting platform) receives a function call (e.g.,create campaign function call 230) from the advertising entity atoperation 802. The advertising entity may be using ad campaign software222. The function call includes different parameters including anidentification for identifying the advertising entity, an advertisingcost budget for an ad campaign, and optionally an identification foridentifying an ad campaign to be created. The system executes the one ormore performance based algorithms in response to the function call atoperation 804. The one or more performance based algorithms analyzeparameters of the function call, advanced targeting data and parameters,and rules for determining a customized ad campaign with highly relevantads for the advertising entity at operation 806. The rules may includevariable rate performance such as a return on investment (ROI) parameter(e.g., 10-20% ROI) or function for the ad campaign based on theadvertising cost budget. The advanced targeting data and parameters mayinclude device characteristics (e.g., device id, device age, networkconnection for user's device, whether user's device is mobile device ortablet device, OS version, volume, screen size and orientation, languagesetting) and user characteristics (e.g., user spend, conversion rate,engagement rate, app type, IAP activity, predicted user LTV, etc.) fromany source including the system 100, attributers 186, advertisers 184,and publishers 182. The conversion rate may be used to divide users intodifferent groups based on the predicted conversion rate for each user. Acategory conversion rate can indicate how likely a conversion occurs fora user with a particular app category (e.g., sports games, war games,quest games, news content apps, restaurant apps, fashion apps, travelapps, business apps, etc.). An engagement rate is used to target usershaving a high ad engagement during ad play events. An app type maytarget users having competitor apps installed or users that have aparticular “X” app installed. The competitor apps are competitors ofpublishers or developers that want to advertise to users of thecompetitor apps. The IAP activity targets users with IAP activity asindicated by user data from the system's 100 data pipeline. Users withIAP activity can be separated into groups based on spend ranges (e.g.,$10-50 range, $50-100 range, $100 or more range, etc.). The device agecan be used to target new devices (i.e., devices that are new withrespect to the system 100 or recently associated with system 100).Additional parameters include segments of users such as non-payersversus payers, social influence based on social media data, organic appinstalls for a user, and life time value (LTV) of a user. The targetingplatform of the ad system provides improved computer targetingfunctionality for supporting advertisers, developers, and publishershaving complex bid strategies for their user acquisition ad campaigns.The targeting platform is able to target an individual user havingspecific device and user characteristics as defined programmatically byan ad campaign. A response with the customized ad campaign is sent fromthe ad system (e.g., software component(s) via the one or more APIs) tothe ad campaign software of the advertising entity at operation 808. Theresponse includes one or more function calls with return values andparameters in response to the function call received from the adcampaign software. The parameters of the response may include anidentification of the ad campaign (e.g., ad campaign 1), and features orfunctions of the ad campaign. The ad campaign software will display auser interface or dashboard for customizing the ad campaign. The createdad campaign can be saved in a database (e.g., the database 224, adcampaign store 216) at operation 810. The ad campaign may utilize adsfrom any source including database 224, an ad store 210, third partydatabases 297, etc.

FIG. 9 illustrates a diagrammatic representation of a machine in theexemplary form of a computer system or device 900 within which a set ofinstructions, for causing the machine to perform any one or more of themethodologies discussed herein, may be executed. In alternativeembodiments, the machine may be connected (e.g., networked) to othermachines in a LAN, an intranet, an extranet, or the Internet. Themachine may operate in the capacity of a server or a client machine in aclient-server network environment, or as a peer machine in apeer-to-peer (or distributed) network environment. The machine may be apersonal computer (PC), a tablet PC, a set-top box (STB), a PersonalDigital Assistant (PDA), a cellular telephone, a mobile device, a webappliance, a server, a network router, switch or bridge, or any machinecapable of executing a set of instructions (sequential or otherwise)that specify actions to be taken by that machine. Further, while only asingle machine is illustrated, the term “machine” shall also be taken toinclude any collection of machines that individually or jointly executea set (or multiple sets) of instructions to perform any one or more ofthe methodologies discussed herein.

The exemplary device 900 includes a processing system 902, a main memory904 (e.g., read-only memory (ROM), flash memory, dynamic random accessmemory (DRAM) such as synchronous DRAM (SDRAM) or Rambus DRAM (RDRAM),etc.), a static memory 906 (e.g., flash memory, static random accessmemory (SRAM), etc.), and a data storage device 918, which communicatewith each other via a bus 930.

Processing system 902 represents one or more general-purpose processingdevices such as one or more microprocessors, central processing units,or the like. More particularly, the processing system 902 may be acomplex instruction set computing (CISC) microprocessor, reducedinstruction set computing (RISC) microprocessor, very long instructionword (VLIW) microprocessor, or a processor implementing otherinstruction sets or processors implementing a combination of instructionsets. The processing system 902 may also be one or more special-purposeprocessing devices such as an application specific integrated circuit(ASIC), a field programmable gate array (FPGA), a digital signalprocessor (DSP), network processor, or the like. The processing system902 is configured to execute the processing logic 926 for performing theoperations and steps discussed herein.

The device 900 may further include a network interface device 908 thatmay include RF circuitry for sending and receiving RF cellular signals,a wireless transceiver for WiFi, a USB component, a NFC component, orany other communications component for sending and receivingcommunications via a network 920. The device 900 also may include aninput/output device 910 (e.g., a display, a liquid crystal display(LCD), a plasma display, a cathode ray tube (CRT), touch display device,or touch screen for receiving user input and displaying output), anoptional alphanumeric input device 912 (e.g., a keyboard), an optionalcursor control device 914 (e.g., a mouse), and a signal generationdevice 916 (e.g., a speaker).

The data storage device 918 may include a machine-accessiblenon-transitory medium 931 on which is stored one or more sets ofinstructions (e.g., software 922) embodying any one or more of themethodologies or functions described herein. The software 922 mayinclude an operating system 923, advertising services software 924(e.g., SDK 924), communications module 926, and applications 928 (e.g.,publisher applications). The software 922 may also reside, completely orat least partially, within the main memory 904 (e.g., software 923)and/or within the processing system 902 during execution thereof by thedevice 900, the main memory 904 and the processing system 902 alsoconstituting machine-accessible storage media. The software 922 or 923may further be transmitted or received over the network 920 via thenetwork interface device 908.

The machine-accessible non-transitory medium 931 may also be used tostore data structure sets that define user identifying states and userpreferences that define user profiles. Data structure sets and userprofiles may also be stored in other sections of device 900, such asstatic memory 906.

FIG. 10 is a block diagram of a wireless device 1000 in accordance withone embodiment. The wireless device 1000 may be any type of wirelessdevice (e.g., cellular phone, wireless phone, tablet, etc.) for sendingand receiving wireless communications. The wireless device includes aprocessing system 1010 that includes a controller 1020 and processingunits 1014. The processing system 1010 communicates with an Input/Output(I/O) unit 1030, radio frequency (RF) circuitry 1070, audio circuitry1060, an optics device 1060 for capturing one or more images or video, amotion unit 1044 (e.g, an accelerometer, gyroscope, etc.) fordetermining motion data (e.g., in three dimensions) for the wirelessdevice 1000, power management system 1040, and machine-accessiblenon-transitory medium 1050. These components are coupled by one or morecommunication links or signal lines.

RF circuitry 1070 is used to send and receive information over awireless link or network to one or more other devices. Audio circuitry1060 is coupled to audio speaker 1062 and microphone 1064 and includesknown circuitry for processing voice signals.

One or more processing units 1014 communicate with one or moremachine-accessible non-transitory mediums 1050 (e.g., computer-readablemedium) via controller 1020. Medium 1050 can be any device or medium(e.g., storage device, storage medium) that can store code and/or datafor use by one or more processing units 1014. Medium 1050 can include amemory hierarchy, including but not limited to cache, main memory andsecondary memory. The medium 1050 stores one or more sets ofinstructions (or software) embodying any one or more of themethodologies or functions described herein. The software may include anoperating system 1052, advertising services software 1056 (e.g., SDK1056), communications module 1054, and applications 1058 (e.g.,publisher applications, developer applications, a web browser, html5applications, etc.). The software may also reside, completely or atleast partially, within the medium 1050 or within the processing units1014 during execution thereof by the device 1000. The components shownin FIG. 10 may be implemented in hardware, software, firmware or anycombination thereof, including one or more signal processing and/orapplication specific integrated circuits.

Communication module 1054 enables communication with other devices. TheI/O unit 1030 communicates with different types of input/output (I/O)devices 1034 (e.g., a display, a liquid crystal display (LCD), a plasmadisplay, a cathode ray tube (CRT), touch display device, or touch screenfor receiving user input and displaying output, an optional alphanumericinput device).

In one embodiment, a machine-accessible non-transitory medium containsexecutable computer program instructions which when executed by a dataprocessing system cause the system to perform any of the methodsdiscussed herein. While the machine-accessible non-transitory medium1050 is shown in an exemplary embodiment to be a single medium, the term“machine-accessible non-transitory medium” should be taken to include asingle medium or multiple media (e.g., a centralized or distributeddatabase, and/or associated caches and servers) that store the one ormore sets of instructions. The term “machine-accessible non-transitorymedium” shall also be taken to include any medium that is capable ofstoring, encoding or carrying a set of instructions for execution by themachine and that cause the machine to perform any one or more of themethodologies of the present invention. The term “machine-accessiblenon-transitory medium” shall accordingly be taken to include, but not belimited to, solid-state memories, optical and magnetic media.

In one embodiment, a system for advanced targeting of devices for addelivery includes a storage medium to store instructions of one or moreperformance based algorithms and processing logic coupled to the storagemedium. In response to receiving a function call from an advertisingentity the processing logic is configured to execute the instructions ofthe one or more performance based algorithms to analyze parameters ofthe function call including an advertising cost budget for an adcampaign and analyze advanced targeting data and parameters and rulesfor determining a customized ad campaign for the advertising entity. Theadvanced targeting data and parameters include device characteristicsand user characteristics including at least two of conversion rate, adengagement rate, installed software application (app) type on a user'sdevice, and in-app purchase (IAP) activity of a user from any ad source.

In one example, the device characteristics include device identificationand device age with respect to a time period in which the device isidentified by the system. The conversion rate is used to divide usersinto different groups based on the predicted conversion rate for theusers. An ad category conversion rate indicates a probability for aconversion occurring for a user for a particular app category. The apptype may target users having competitor apps installed or users thathave a particular application installed. The rules include a return oninvestment (ROI) parameter for the ad campaign based on the advertisingcost budget. The ad campaign delivers video ads in-app (i.e., withininitiated software applications of mobile devices) to users of mobiledevices via a network.

In one embodiment, a machine-accessible non-transitory medium containingexecutable computer program instructions which when executed by a systemcause the system to perform a method for advanced targeting of devicesfor ad delivery. The method includes receiving, with a system, afunction call from ad campaign software of an advertising entity andexecuting one or more performance based algorithms to analyze parametersof the function call including an advertising cost budget for an adcampaign, analyze advanced targeting data, parameters, and rules fordetermining a customized ad campaign for the advertising entity. Theadvanced targeting data and parameters include device characteristicsand user characteristics including at least two of conversion rate, adengagement rate, installed software application (app) type, ROI, LTV,and in-app purchase (IAP) activity from any ad source.

In one example, the device characteristics include device identificationand device age with respect to a time period in which the deviceidentified by the system. The conversion rate is used to divide usersinto different groups based on the predicted conversion rate for theusers. An ad category conversion rate indicates a probability for aconversion occurring for a user for a particular app category. The apptype may target users having competitor apps installed or users thathave a particular “X” app installed. In one example, the rules include areturn on investment (ROI) parameter for the ad campaign based on theadvertising cost budget, wherein the ad campaign delivers video adsin-app (i.e., within initiated software applications of mobile devices)to users of mobile devices via a network.

In one embodiment, a method for programmatically determining acustomized advertising campaign with advanced targeting includesreceiving, with a system, a function call from ad campaign software ofan advertising entity and executing one or more performance basedalgorithms to analyze parameters of the function call including anadvertising cost budget for an ad campaign, analyze advanced targetingdata, parameters, and rules for determining a customized ad campaign forthe advertising entity. The advanced targeting data and parametersinclude device characteristics and user characteristics including atleast two of conversion rate, ad engagement rate, installed softwareapplication (app) type, ROI, LTV, and in-app purchase (IAP) activityfrom any ad source.

In one example, the device characteristics include device identificationand device age with respect to a time period in which the deviceidentified by the system. The conversion rate is used to divide usersinto different groups based on the conversion rate for the users. An adcategory conversion rate indicates a probability for a conversionoccurring for a user for a particular app category.

The app type may target users having competitor apps installed or usersthat have a particular “X” app installed. In one example, the rulesinclude a return on investment (ROI) parameter for the ad campaign basedon the advertising cost budget, wherein the ad campaign delivers videoads in-app (i.e., within initiated software applications of mobiledevices) to users of mobile devices via a network.

In one embodiment, a system for advanced targeting of devices for addelivery includes an advertising campaign framework having one or moreapplication programming interfaces (APIs) and software componentsincluding one or more software programs and software code libraries, astorage medium to store instructions of the one or more APIs, softwarecomponents, and at least one performance based algorithm, and processinglogic coupled to the storage medium. The processing logic is configuredto execute the instructions to receive a function call from anadvertising entity for creating an advertising (ad) campaign, analyzeparameters of the function call including an advertising cost budget forthe ad campaign, and analyze advanced targeting data, parameters, andrules for determining the ad campaign for the advertising entity. Theadvanced targeting data and parameters include device characteristicsand user characteristics including at least two of conversion rate, adengagement rate, installed software application (app) type, ROI, LTV,and in-app purchase (IAP) activity from any ad source.

The device characteristics include device identification and device agewith respect to a time period in which the device is identified by thesystem. The conversion rate is used to divide users into differentgroups based on the predicted conversion rate for the users. An adcategory conversion rate indicates a probability for a conversionoccurring for a user for a particular app category.

The app type may target users having competitor apps installed or usersthat have a particular “X” app installed. The rules include a return oninvestment (ROI) parameter for the ad campaign based on the advertisingcost budget. The ad campaign delivers video ads in-app (i.e., withininitiated software applications of mobile devices) to users of mobiledevices via a network.

In the foregoing specification, the invention has been described withreference to specific exemplary embodiments thereof. It will be evidentthat various modifications may be made thereto without departing fromthe broader spirit and scope of the invention as set forth in thefollowing claims. The specification and drawings are, accordingly, to beregarded in an illustrative sense rather than a restrictive sense.

What is claimed is:
 1. A system for advanced programmatic targeting ofwireless devices including mobile devices and tablet devices for addelivery, comprising: a programmatic advertising campaign frameworkhaving one or more application programming interfaces (APIs) andsoftware components including one or more performance based algorithms;a non-transitory storage medium to store instructions of the one or moreapplication programming interfaces (APIs) and software componentsincluding the one or more performance based algorithms; and processinglogic including a hardware processor that is coupled to the storagemedium, the hardware processor is configured to execute the instructionsof the one or more application programming interfaces (APIs) andsoftware components including the one or more performance basedalgorithms to: receive, with the system, a function call from anadvertising entity; analyze parameters of the function call including anadvertising cost budget for an ad campaign; analyze advanced targetingdata and parameters and rules for determining a customized ad campaignfor the advertising entity; receive, with the system, an update campaignfunction call to modify a user ad engagement rate from a first adengagement rate to a second ad engagement rate, wherein the user adengagement rate for an in-app video ad within non-web browserapplications of mobile devices or tablet devices is measured in terms ofplay rate, playthrough rate, completion rates, video viewing time, andshare rates, wherein the advanced targeting data and parameters includedevice characteristics and user characteristics including in-apppurchase (IAP) activity within the non-web browser applications ofmobile devices or tablet devices of a user from any ad source, differentconversion rates for representing a likelihood of conversion fordifferent groups of users, the first and second ad engagement rates toindicate a level of user engagement with in-app video ads within non-webbrowser applications of mobile devices or tablet devices during an adplay event on wireless devices of users, wherein the mobile device andtablet device characteristics for targeting wireless devices of usersinclude different operating system types, volume settings, bandwidth ofa wireless network connection for a user's mobile device or tabletdevice, whether user's wireless device is a mobile device or a tabletdevice, screen size and orientation for the mobile and tablet devices,mobile or tablet device identification, and mobile device or tabletdevice age to target mobile and tablet wireless devices that are newwith respect to the system or recently associated with the system withthe device age being a time period in which the mobile device or tabletdevice is identified by the system.
 2. The system of claim 1, whereinthe device characteristics for targeting wireless devices of usersinclude volume, screen size and orientation, language setting, deviceidentification and device age with respect to a time period in which thedevice is identified by the system, wherein the user characteristics fortargeting wireless devices of users include user spend and app type. 3.The system of claim 1, wherein the conversion rate is used to divideusers into different groups based on the conversion rate for the users,wherein an ad category conversion rate indicates a probability for aconversion occurring for a user of a device for a particular appcategory.
 4. The system of claim 1, wherein the app type may targetusers having competitor apps installed on their devices or users thathave a particular application installed on their devices.
 5. The systemof claim 1, wherein the rules include a return on investment (ROI)parameter for the ad campaign based on the advertising cost budget,wherein the ad campaign delivers video ads to users of mobile devices.6. A machine-accessible non-transitory storage medium containingexecutable computer program instructions which when executed by a systemcause the system to perform a method for advanced programmatic targetingof devices including mobile devices and tablet devices for ad delivery,the method comprising: receiving, with a programmatic advertisingcampaign framework having one or more application programming interfaces(APIs) and software components including one or more performance basedalgorithms of the system, a function call from ad campaign software ofan advertising entity; executing one or more performance basedalgorithms to analyze parameters of the function call including anadvertising cost budget for an ad campaign, analyze advanced targetingdata, parameters, and rules for determining a customized ad campaign forthe advertising entity; receiving, with the system, an update campaignfunction call to modify a user ad engagement rate from a first adengagement rate to a second ad engagement rate, wherein the user adengagement rate for an in-app video ad within non-web browserapplications of mobile devices or tablet devices is measured in terms ofplay rate, playthrough rate, completion rates, video viewing time, andshare rates, wherein the advanced targeting data and parameters includedevice characteristics and user characteristics including in-apppurchase (IAP) activity within the non-web browser applications ofmobile devices or tablet devices of a user from any ad source, differentconversion rates for representing a likelihood of conversion fordifferent groups of users, the first and second ad engagement rates toindicate a level of user engagement with in-app video ads within non-webbrowser applications of mobile devices or tablet devices during an adplay event on wireless devices of users, wherein the mobile device andtablet device characteristics for targeting wireless devices of usersinclude different operating system types, volume settings, bandwidth ofa wireless network connection for a user's mobile device or tabletdevice, whether user's wireless device is a mobile device or a tabletdevice, screen size and orientation for the mobile and tablet devices,mobile or tablet device identification, and mobile device or tabletdevice age to target mobile and tablet wireless devices that are newwith respect to the system or recently associated with the system withthe device age being a time period in which the mobile device or tabletdevice is identified by the system.
 7. The machine-accessiblenon-transitory storage medium of claim 6, wherein the devicecharacteristics include device identification and device age withrespect to a time period in which the device identified by the system,wherein the user characteristics for targeting wireless devices of usersinclude user spend and app type.
 8. The machine-accessiblenon-transitory storage medium of claim 6, wherein the conversion rate isused to divide users into different groups based on the conversion ratefor the users, wherein an ad category conversion rate indicates aprobability for a conversion occurring for a user for a particular appcategory.
 9. The machine-accessible non-transitory storage medium ofclaim 6, wherein the app type may target users having competitor appsinstalled or users that have a particular app installed.
 10. Themachine-accessible non-transitory storage medium of claim 6, wherein therules include a return on investment (ROI) parameter for the ad campaignbased on the advertising cost budget, wherein the ad campaign deliversvideo ads to users of mobile devices.
 11. A method for programmaticallydetermining a customized advertising campaign with advanced programmatictargeting, comprising: receiving, with a programmatic advertisingcampaign framework having one or more application programming interfaces(APIs) and software components including one or more performance basedalgorithms of a system, a function call from ad campaign software of anadvertising entity; and executing one or more performance basedalgorithms to analyze parameters of the function call including anadvertising cost budget for an ad campaign, analyze advanced targetingdata, parameters, and rules for determining a customized ad campaign forthe advertising entity, wherein the advanced targeting data andparameters include device characteristics and user characteristicsincluding in-app purchase (IAP) activity within the non-web browserapplications of mobile devices or tablet devices of a user from any adsource, different conversion rates for representing a likelihood ofconversion for different groups of users, the first and second adengagement rates to indicate a level of user engagement with in-appvideo ads within non-web browser applications of mobile devices ortablet devices during an ad play event on wireless devices of users,wherein the mobile device and tablet device characteristics fortargeting wireless devices of users include different operating systemtypes, volume settings, bandwidth of a wireless network connection for auser's mobile device or tablet device, whether user's wireless device isa mobile device or a tablet device, screen size and orientation for themobile and tablet devices, mobile or tablet device identification, andmobile device or tablet device age to target mobile and tablet wirelessdevices that are new with respect to the system or recently associatedwith the system with the device age being a time period in which themobile device or tablet device is identified by the system.
 12. Themethod of claim 11, wherein the device characteristics include deviceidentification and device age with respect to a time period in which thedevice is identified by the system, wherein the user characteristics fortargeting wireless devices of users include user spend and app type. 13.The method of claim 11, wherein the conversion rate is used to divideusers into different groups based on the conversion rate for the users,wherein an ad category conversion rate indicates a probability for aconversion occurring for a user for a particular app category.
 14. Themethod of claim 11, wherein the app type may target users havingcompetitor apps installed or users that have a particular app installed.15. The method of claim 11, wherein the rules include a return oninvestment (ROI) parameter for the ad campaign based on the advertisingcost budget, wherein the ad campaign delivers video ads to users ofmobile devices.
 16. A system for advanced programmatic targeting ofdevices for ad delivery, comprising: an advertising campaign frameworkhaving one or more application programming interfaces (APIs) andsoftware components including one or more software programs and softwarecode libraries; a non-transitory storage medium to store instructions ofthe one or more APIs, software components, and at least one performancebased algorithm; and processing logic including a hardware processorthat is coupled to the storage medium, the hardware processor isconfigured to execute the instructions to: receive a function call froman advertising entity for creating an advertising (ad) campaign; analyzeparameters of the function call including an advertising cost budget forthe ad campaign; and analyze advanced targeting data, parameters, andrules for determining the ad campaign for the advertising entity,wherein the advanced targeting data and parameters include devicecharacteristics and user characteristics including in-app purchase (IAP)activity within the non-web browser applications of mobile devices ortablet devices of a user from any ad source, different conversion ratesfor representing a likelihood of conversion for different groups ofusers, the first and second ad engagement rates to indicate a level ofuser engagement with in-app video ads within non-web browserapplications of mobile devices or tablet devices during an ad play eventon wireless devices of users, wherein the mobile device and tabletdevice characteristics for targeting wireless devices of users includedifferent operating system types, volume settings, bandwidth of awireless network connection for a user's mobile device or tablet device,whether user's wireless device is a mobile device or a tablet device,screen size and orientation for the mobile and tablet devices, mobile ortablet device identification, and mobile device or tablet device age totarget mobile and tablet wireless devices that are new with respect tothe system or recently associated with the system with the device agebeing a time period in which the mobile device or tablet device isidentified by the system.
 17. The system of claim 16, wherein the devicecharacteristics include device identification and device age withrespect to a time period in which the device is identified by thesystem, wherein the user characteristics for targeting wireless devicesof users include user spend and app type.
 18. The system of claim 16,wherein the conversion rate is used to divide users into differentgroups based on the conversion rate for the users, wherein an adcategory conversion rate indicates a probability for a conversionoccurring for a user for a particular app category.
 19. The system ofclaim 16, wherein the app type may target users having competitor appsinstalled or users that have a particular app installed.
 20. The systemof claim 16, wherein the rules include a return on investment (ROI)parameter for the ad campaign based on the advertising cost budget,wherein the ad campaign delivers video ads to users of mobile devices.